# 整个项的配置

class Config:
    # 配置数据库和SQLALchemy
    HOSTNAME = '127.0.0.1'
    PORT = '3306'
    DATABASE = 'test_financial'
    USERNAME = 'root'
    PASSWORD = 'root'
    DB_URI = "mysql+pymysql://{username}:{password}@{host}:{port}/{db}?charset=utf8".format(username=USERNAME,
                                                                                            password=PASSWORD,
                                                                                            host=HOSTNAME, port=PORT,
                                                                                            db=DATABASE)

    SQLALCHEMY_DATABASE_URI = DB_URI
    SQLALCHEMY_TRACK_MODIFICATIONS = False  # 不需要跟踪数据库中数据的修改

    # 日志的配置
    LOGGING_LEVEL = 'DEBUG'  # 日志的错误级别
    LOGGING_FILE_DIR = 'logs/'  # 日志的保存路径
    LOGGING_FILE_MAX_BYTES = 300 * 1024 * 1024  # 日志的最大文件
    LOGGING_FILE_BACKUP = 100  # 备份日志的个数

    # 限流器采用Redis保存数据，默认是内存，需要安装flask-redis
    RATELIMIT_STORAGE_URL = 'redis://192.168.17.3:6379/0'
    # 限制策略：移动窗口：时间窗口会自动变化
    RATELIMIT_STRATEGY = 'moving-window'

    # redis数据库的连接地址，使用数据库1来存放缓存数据包括短信验证码
    REDIS_URL = "redis://192.168.17.3:6379/1"

    #用户头像图片的保存目录配置
    AVATAR_DIR=r'D:\flask_project\flask_financial\financial\static\avatar'

# 配置生产环境
class ProductmentConfig(Config):
    pass


# 配置开发环境
class DevelopmentConfig(Config):
    DEBUG = True
    SQLALCHEMY_ECHO = True  # 打印sql


map_config = {
    'product': ProductmentConfig,
    'develop': DevelopmentConfig
}
